#ifndef ERROR_H
#define ERROR_H

#include <QString>

class SourceReader;
class Token;

class Error
{
public:
	static const QString EFileOpenError;
	static const QString EStringConstNotFinished;
	static const QString EUnxepectedCharInName;
	static const QString ENameRequired;
	static const QString EInvalidNameStart;
	static const QString EInvalidLengthOfConst;
	static const QString EInvalidCharInConst;
	static const QString EUnsupportedDirective;
	static const QString EInvalidModifier;

	Error(SourceReader* pReader, QString pMessage);
	Error(Token* pToken, QString pMessage);
	Error(QString pFile, qint32 pLine, qint32 pCol, QString pMessage);

	const QString FileName;
	const qint32 Line;
	const qint32 Column;
	const QString Message;

	void Print();
private:
};

#endif // ERROR_H
